Widening Operator. Fixpoint Approximation with Widening. A widening operator 2 L ˆ L 7``! L is such that: Correctness: - 8x; y 2 L : (y) v (x y)
|
|
- Norma Burke
- 6 years ago
- Views:
Transcription
1 EXPERIENCE AN INTRODUCTION WITH THE DESIGN TOF A SPECIAL PURPOSE STATIC ANALYZER ABSTRACT INTERPRETATION P. Cousot Patrick.Cousot@ens.fr Biarritz IFIP-WG meeting (1) (4) mars 2003, Hotel Miramar, Biarritz, France ľ P. Cousot, all rights reserved. 3. Application to Static Analysis Widening Operator A widening operator 2 L ˆ L 7``! L is such that: Correctness: - 8x; y 2 L : (x) v (x y) - 8x; y 2 L : (y) v (x y) Convergence: - for all increasing chains x 0 v x 1 v..., the increasing chain defined by y 0 = x 0,..., y i+1 = y i x i+1,... is not strictly increasing. An Introduction to Abstract Interpretation, ľ P. Cousot, 25/3/03 3:1/58 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:58/121 J []? I Idx, Toc Fixpoint Approximation with Widening 3.5 Fixpoint Approximation with Convergence Acceleration by Widening/Narrowing The upward iteration sequence with widening: X 0 =?- (infimum) X i+1 = X i if F ( X i ) v X i = X i F ( X i ) otherwise is ultimately stationary and its limit à is a sound upper approximation of lfp?- F : lfp?- F v à P. Cousot, R. Cousot: Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation. PLILP, LNCS 631, 1992: , Springer. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:57/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:59/121 J []? I Idx, Toc
2 > gfp F lfp F?- F L >; Fixpoint Approximation with Widening/Narrowing 9 2 >= >; 9 2 >= L 9 2 >= >; F X 2 = X 1 F ( X 1 ) = > = ˇX 0 ˇX 1 = ˇX 0 F ( ˇX 0 ) =gfpf =lfpf X 1 = X 0 F ( X 0 ) X 0 =?- An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:60/121 J []? I Idx, Toc Interval Widening with threshold set The threshold set T is a finite set of numbers (plus +1 and `1), [a; b] T [a 0 ;b 0 ]=[if a 0 <athen maxf 2 T j» a 0 g else a; if b 0 >bthen minfh 2 T j h b 0 g else b] : Examples (intervals): - sign analysis: T = f`1; 0; +1g; - strict sign analysis: T = f`1; `1; 0; +1; +1g; T is a parameter of the analysis. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:62/121 J []? I Idx, Toc Interval Widening L = f?g [ f[ ; u] j 2 Z [f`1g^u 2 Z [f+1g ^» ug The widening extrapolates unstable bounds to infinity:? X = X X? = X [ 0 ;u 0 ] [ 1 ;u 1 ]=[if 1 < 0 then `1else 0 ; if u 1 > u 0 then + 1 else u 0 ] Not monotone. For example [0; 1] v [0; 2] but [0; 1] [0; 2] = [0; +1] 6v [0; 2] = [0; 2] [0; 2] Non-Existence of Finite Abstractions Let us consider the infinite family of programs parameterized by the mathematical constants n 1, n 2 (n 1» n 2 ): X := n 1 ; while X» n 2 do X := X +1; od An interval analysis with widening/narrowing will discover the loop invariant X 2 [n 1 ;n 2 ]; To handle all programs in the family without false alarm, the abstract domain must contain all such intervals; ) No single finite abstract domain will do for all programs! An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:61/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:63/121 J []? I Idx, Toc
3 General-Purpose Static Program Analyzers 3.8 Application to the static analysis of critical real-time synchronous embedded software To handle infinitely many programs for non-trivial properties, a general-purpose analyser must use an infinite abstract domain 20 ; Such analyzers are huge for complex languages hence very costly to develop but reusable; There are always programs for which they lead to false alarms; Although incomplete, they are very useful for verifying/testing/ debugging. 20 P. Cousot & R. Cousot. Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation. PLILP 92. LNCS 631, pp Springer. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:88/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:90/121 J []? I Idx, Toc Parametric Specializable Static Program Analyzers General-Purpose versus Specializable Static Program Analysis The abstraction can provably be tailored to one program without any false alarm [SARA 00]; So, may be, the abstraction can be tailored to significant classes of programs (e.g. critical synchronous real-time embedded systems); This would lead to very efficient analyzers with zero (or almost no) false alarm even for large programs. [SARA 00] P. Cousot. Partial Completeness of Abstract Fixpoint Checking, invited paper. In 4 th Int. Symp. SARA 2000, LNAI1864,Springer,pp.1 25,2000. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:89/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:91/121 J []? I Idx, Toc
4 The Class of Periodic Synchronous Programs declare volatile input, state and output variables; initialize state variables; loop forever -readvolatileinputvariables, -computeoutputandstatevariables, -writetovolatileoutputvariables; wait for next clock tick; end loop All computations originates from non-linear control theory; The only allowed interrupts are clock ticks; Execution time of loop body less than a clock tick [4]. AFirstExperienceofParametric Specializable Static Program Analyzers C programs: safety critical embedded real-time synchronous software for non-linear control of complex systems; LOCs, 1300 global variables (booleans, integers, floats, arrays, macros, non-recursive procedures); Implicit specification: absence of runtime errors (no integer/floating point arithmetic overflow, no array bound overflow); Comparative results (commercial software): - 70 false alarms, 2 days, 500 Megabytes; [4] C. Ferdinand, R. Heckmann, M. Langenbach, F. Martin, M. Schmidt, H. Theiling, S. Thesing, and R. Wilhelm. Reliable and precise WCET determination for a real-life processor. ESOP (2001), LNCS2211, An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:92/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:94/121 J []? I Idx, Toc First Experience Report First Experience [5] B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A.Miné,D.Monniaux,and X. Rival. Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. The Essence of Computation: Complexity, Analysis, Transformation. Essays Dedicated to Neil D. Jones, LNCS2566,pages Springer, Initial design: 2h, 110 false alarms (general purpose intervalbased analyzer); Main redesign: - Reduced product with weak relational domain with time; Parametrisation: - Hypotheses on volatile inputs; - Staged widenings with thresholds; - Local refinements of the parameterized abstract domains; Results: No false alarm, 14s, 20 Megabytes. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:93/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:95/121 J []? I Idx, Toc
5 Example of a Simple Idea That Does Not Scale Up Represent abstract environments M = X 7``! D where D is the abstract domain as arrays/functional arrays; O(1) to access/change the abstract value of an identifier but, most variables are locally unchanged so a lot of time is lost in unions P [ P = P and widenings P P = P ; Solution: shared balanced binary tree (maps in CAML); O(ln n) among n to access/change the abstract value of an identifier but, most of the tree is unchanged in unions and widenings (gained factor 7 in time). Performance: Space and Time Space = O(LOCs) Time = O(LOCs ˆ (ln(locs)) 1:5 ) Time (minutes) k 100 k 150 k 200 k 250 k 300 k Size (KiloLOCs) An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:96/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:98/121 J []? I Idx, Toc Example of refinement: trace partitionning Control point partitionning: Second Experience Trace partitionning: Fork Join [6] B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A.Miné,D.Monniaux,and X. Rival. A static analyzer for large safety critical software. ACM PLDI 03, San Diego, CA, June 2003, to appear. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:97/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:99/121 J []? I Idx, Toc
6 ASecondExperienceofParametric Specializable Static Program Analyzers Same C programs for synchronous non-linear control of very complex systems; 132,000 lines of C, 75,000 LOCs after preprocessing, 10,000 global variables, over 21,000 after expansion of small arrays; Same implicit specification: absence of runtime errors + no modulo arithmetic; Analyzer of first experience: 30mn, 1,200 false alarms; Example of Difficulty: Semantics Problems For C programs, the abstract transfer functions have to take the machine-level semantics into account; For example: - floating-point arithmetic with rounding errors as opposed to real numbers (e.g. A + B<C^D`B» C 6) A + D< 2 ˆ C); - ESC is simply unsound with respect to modulo arithmetics [8]. [8] Flanagan, C., Leino, K.R.M., Lillibridge, M., Nelson, G., Saxe, J., Stata, R.: Extended static checking for Java. PLDI 02,ACMSIGPLANNot.37(5),(2002) An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:100/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:102/121 J []? I Idx, Toc Some Difficulties (Among Others) Ignoring the value of any variable at any program point creates false alarms; Most precise abstract domains (e.g. polyhedra [7]) simply do not scale up; Tracing the fixpoint computation will produce huge log files crashing usual text editors; Example of Refinement: Octagons 8 1» x» 9 x + y» 78 1» y» 20 x ` y» 03 >< >: [7] P. Cousot and N. Halbwachs. Automatic discovery of linear restraintsamongvariables of a program. In 5 th POPL, pages84 97,Tucson,AZ,1978.ACMPress. 101 An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:101/121 J []? I Idx, Toc [9] A. Miné. A New Numerical Abstract Domain Based on Difference-Bound Matrices. In PADO 2001,LNCS2053,Springer,2001,pp An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:103/121 J []? I Idx, Toc
7 Difficulty 1 with Octagons Most operations are O(n 2 ) in space and O(n 3 ) in time, so does not scale up; Solution: - Parameterize with packs of variables/program points where to use octagons, - Automatize the determination of the packs by experimentation (to eliminate the useless ones); Second Experience (Preliminary) Report Comparative results (commercial software): 2,000 (false?) alarms, 3 days; Results: 20 2 (false?) alarms, 1h30mn, 2500 Gigabytes. Megabytes. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:104/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:106/121 J []? I Idx, Toc Difficulty 2 with Octagons 21 Benchmarks Must be correct with respect to the IEEE 754 floating-point arithmetic norm; Solution: sophisticated algorithmics to correctly handle concrete and abstract rounding errors time (s) kloc 21 An opened problem with polyhedra. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:105/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:107/121 J []? I Idx, Toc
8 Mastering Invariant Size Explosion The main loop invariant: a textual file over 4.5 Mb with 6,900 boolean interval assertions (x 2 [0; 1]) 9,600 interval assertions (x 2 [a; b]) 25,400 clock assertions (x +clk2 [a; b] ^ x ` clk 2 [a; b]) 19,100 additive octagonal assertions (a» x + y» b) 19,200 subtractive octagonal assertions (a» x ` y» b) 100 decision trees etc,... involving over 16,000 floating point constants (only 550 appearing in the program text) ˆ 75,000 LOCs. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:108/121 J []? I Idx, Toc
The ASTRÉE Analyzer Patrick Cousot 2, Radhia Cousot 1,3, Jerôme Feret 2, Laurent Mauborgne 2, Antoine Miné 2, David Monniaux 1,2, and Xavier Rival 2 1 CNRS 2 École Normale Supérieure, Paris, France Firstname.Lastname@ens.fr
More informationThe Verification Grand Challenge and Abstract Interpretation
The Verification Grand Challenge and Abstract Interpretation Patrick Cousot École normale supérieure, 45 rue d Ulm 75230 Paris cedex 05, France Patrick.Cousot ens fr Visiting the Aeronautics and Astronautics
More informationStatic Analysis by A. I. of Embedded Critical Software
Static Analysis by Abstract Interpretation of Embedded Critical Software Julien Bertrane ENS, Julien.bertrane@ens.fr Patrick Cousot ENS & CIMS, Patrick.Cousot@ens.fr Radhia Cousot CNRS & ENS, Radhia.Cousot@ens.fr
More informationRelational Abstract Domains for the Detection of Floating-Point Run-Time Errors
ESOP 2004 Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors Antoine Miné École Normale Supérieure Paris FRANCE This work was partially supported by the ASTRÉE RNTL project
More informationDesign and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software
Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software Bruno Blanchet 1, Patrick Cousot 1, Radhia Cousot 2, Jérôme Feret 1, Laurent Mauborgne
More informationAutomatic Qualification of Abstract Interpretation-based Static Analysis Tools. Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013
Automatic Qualification of Abstract Interpretation-based Static Analysis Tools Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013 2 Functional Safety Demonstration of functional correctness Well-defined
More informationWhy does ASTRÉE scale up?
Form Methods Syst Des (2009) 35: 229 264 DOI 10.1007/s10703-009-0089-6 Why does ASTRÉE scale up? Patrick Cousot Radhia Cousot Jérôme Feret Laurent Mauborgne Antoine Miné Xavier Rival Published online:
More informationLecture 6. Abstract Interpretation
Lecture 6. Abstract Interpretation Wei Le 2014.10 Outline Motivation History What it is: an intuitive understanding An example Steps of abstract interpretation Galois connection Narrowing and Widening
More informationBuilding a specialized static analyzer
Building a specialized static analyzer The Astrée experience Antoine Miné CNRS, École Normale Supérieure Security and Reliability of Software Systems 12 December 2008 Antoine Miné Building a specialized
More informationA Static Analyzer for Large Safety-Critical Software
A Static Analyzer for Large Safety-Critical Software (Extended Abstract) Bruno Blanchet Patrick Cousot Radhia Cousot Jérôme Feret Laurent Mauborgne Antoine Miné David Monniaux Xavier Rival ABSTRACT We
More informationait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS
ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS Christian Ferdinand and Reinhold Heckmann AbsInt Angewandte Informatik GmbH, Stuhlsatzenhausweg 69, D-66123 Saarbrucken, Germany info@absint.com
More informationAbstract interpretation
The Verification Grand Challenge and Abstract Interpretation Patrick Cousot École normale supérieure, Paris, France cousot ens fr www.di.ens.fr/~cousot Verified Software: Theories, Tools, Experiments Zürich,
More informationThe Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS
The Apron Library Bertrand Jeannet and Antoine Miné INRIA, CNRS/ENS CAV 09 conference 02/07/2009 Context : Static Analysis What is it about? Discover properties of a program statically and automatically.
More informationVerification of Embedded Software: Problems and Perspectives
Verification of Embedded Software: Problems and Perspectives Patrick COUSOT École Normale Supérieure 45 rue d Ulm 75230 Paris cedex 05, France Patrick.Cousot@ens.fr www.di.ens.fr/ cousot Radhia COUSOT
More informationSMT-Style Program Analysis with Value-based Refinements
SMT-Style Program Analysis with Value-based Refinements Vijay D Silva Leopold Haller Daniel Kröning NSV-3 July 15, 2010 Outline Imprecision and Refinement in Abstract Interpretation SAT Style Abstract
More informationState of Practice. Automatic Verification of Embedded Control Software with ASTRÉE and beyond
Automatic Verification of Embedded Control Software with ASTRÉE and beyond Patrick Cousot Jerome C. Hunsaker Visiting Professor Department of Aeronautics and Astronautics, MIT cousot mit edu www.mit.edu/~cousot
More informationFormal proofs of code generation and verification tools
Formal proofs of code generation and verification tools Xavier Leroy To cite this version: Xavier Leroy. Formal proofs of code generation and verification tools. Dimitra Giannakopoulou and Gwen Salaün.
More informationAbstract Interpretation of Floating-Point. Computations. Interaction, CEA-LIST/X/CNRS. February 20, Presentation at the University of Verona
1 Laboratory for ModElling and Analysis of Systems in Interaction, Laboratory for ModElling and Analysis of Systems in Interaction, Presentation at the University of Verona February 20, 2007 2 Outline
More informationRelational Abstract Domains for the Detection of Floating-Point Run-Time Errors
Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors Antoine Miné To cite this version: Antoine Miné. Relational Abstract Domains for the Detection of Floating-Point Run-Time
More informationInterval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships
Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships Liqian Chen 1,2 Antoine Miné 3,2 Ji Wang 1 Patrick Cousot 2,4 1 National Lab. for Parallel and Distributed Processing, Changsha,
More informationAlgebraic Program Analysis
Introduction to Algebraic Program Analysis Zachary Kincaid 1 Thomas Reps 2,3 1 Princeton University 2 University of Wisconsin-Madison 3 GrammaTech, Inc. January 8, 2018 1 Program analysis Design algorithms
More informationStatic Analysis and Verification of Aerospace Software
Static Analysis and Verification of Aerospace Software by Abstract Interpretation joint work with: Patrick Cousot Julien Bertrane and Radhia Cousot École normale supérieure, Paris Patrick Cousot, Courant
More informationA Gentle Introduction to Program Analysis
A Gentle Introduction to Program Analysis Işıl Dillig University of Texas, Austin January 21, 2014 Programming Languages Mentoring Workshop 1 / 24 What is Program Analysis? Very broad topic, but generally
More informationSendmail crackaddr - Static Analysis strikes back
Sendmail crackaddr - Static Analysis strikes back Bogdan Mihaila Technical University of Munich, Germany December 6, 2014 Name Lastname < name@mail.org > ()()()()()()()()()... ()()() 1 / 25 Abstract Interpretation
More informationHierarchical Shape Abstraction of Dynamic Structures in Static Blocks
Hierarchical Shape Abstraction of Dynamic Structures in Static Blocks Pascal Sotin and Xavier Rival INRIA 4 novembre 2013 P. Sotin, X. Rival (INRIA) Hierarchical Shape Abstraction 4 novembre 2013 1 / 29
More informationTowards an industrial use of FLUCTUAT on safety-critical avionics software
Towards an industrial use of FLUCTUAT on safety-critical avionics software David Delmas 1, Eric Goubault 2, Sylvie Putot 2, Jean Souyris 1, Karim Tekkal 3 and Franck Védrine 2 1. Airbus Operations S.A.S.,
More informationABSTRACT INTERPRETATION
Master of Science in Engineering ABSTRACT INTERPRETATION Pascal Roman Artho, partho@hsr.ch Seminar Program Analysis and Transformation Rapperswil, January 7, 2015 Agenda Informal Example What is the idea
More informationAbstract Interpretation of Floating-Point Computations
Abstract Interpretation of Floating-Point Computations Sylvie Putot Laboratory for ModElling and Analysis of Systems in Interaction, CEA-LIST/X/CNRS Session: Static Analysis for Safety and Performance
More informationTrace Partitioning in Abstract Interpretation Based Static Analyzers
Trace Partitioning in Abstract Interpretation Based Static Analyzers DI, Laurent Mauborgne and Xavier Rival École Normale Supérieure, 45 rue d Ulm, 75 230 Paris cedex 05, France Emails: Laurent.Mauborgne@ens.fr
More informationCalculational Design of Semantics and Static Analyzers by Abstract Interpretation
Calculational Design of Semantics and Static Analyzers by Abstract Interpretation Patrick Cousot École Normale Supérieure DMI, 45, rue d Ulm 75230 Paris cedex 05 France cousot@dmi.ens.fr http://www.dmi.ens.fr/
More informationthe assembly level, since part of the structure of the program is lost at compile time the control structure is rather terse (branching to program poi
Abstract Interpretation-Based Certication of Assembly Code Xavier Rival Ecole Normale Superieure 45, rue d'ulm, 75230, Paris cedex 5, France rival@di.ens.fr Abstract. We present a method for analyzing
More informationA Scalable Segmented Decision Tree Abstract Domain
A Scalable Segmented Decision Tree Abstract Domain Patrick Cousot 2,3, Radhia Cousot 3,1, and Laurent Mauborgne 3,4 1 Centre National de la Recherche Scientifique 2 Courant Institute of Mathematical Sciences,
More informationAdvanced Programming Methods. Introduction in program analysis
Advanced Programming Methods Introduction in program analysis What is Program Analysis? Very broad topic, but generally speaking, automated analysis of program behavior Program analysis is about developing
More informationData-Flow Based Detection of Loop Bounds
Data-Flow Based Detection of Loop Bounds Christoph Cullmann and Florian Martin AbsInt Angewandte Informatik GmbH Science Park 1, D-66123 Saarbrücken, Germany cullmann,florian@absint.com, http://www.absint.com
More informationSimplifying Loop Invariant Generation Using Splitter Predicates. Rahul Sharma Işil Dillig, Thomas Dillig, and Alex Aiken Stanford University
Simplifying Loop Invariant Generation Using Splitter Predicates Rahul Sharma Işil Dillig, Thomas Dillig, and Alex Aiken Stanford University Loops and Loop Invariants Loop Head x = 0; while( x
More informationIterative Program Analysis Abstract Interpretation
Iterative Program Analysis Abstract Interpretation Summary by Ben Riva & Ofri Ziv Soundness Theorem Theorem: If a computation fixed-point is sound, then its least-fixed-point is sound. More precisely,
More informationWeakly Relational Domains for Floating-Point Computation Analysis
Weakly Relational Domains for Floating-Point Computation Analysis Eric Goubault, Sylvie Putot CEA Saclay, F91191 Gif-sur-Yvette Cedex, France {eric.goubault,sylvie.putot}@cea.fr 1 Introduction We present
More informationEmbedded Software Verification Challenges and Solutions. Static Program Analysis
Embedded Software Verification Challenges and Solutions Static Program Analysis Chao Wang chaowang@nec-labs.com NEC Labs America Princeton, NJ ICCAD Tutorial November 11, 2008 www.nec-labs.com 1 Outline
More informationSymbolic Methods to Enhance the Precision of Numerical Abstract Domains
Symbolic Methods to Enhance the Precision of Numerical Abstract Domains Antoine Miné École Normale Supérieure, Paris, France, mine@di.ens.fr, http://www.di.ens.fr/ mine Abstract We present lightweight
More informationExperimental Evaluation of Numerical Domains for Inferring Ranges
Available online at www.sciencedirect.com Electronic Notes in Theoretical Computer Science 334 (2018) 3 16 www.elsevier.com/locate/entcs Experimental Evaluation of Numerical Domains for Inferring Ranges
More informationVerasco: a Formally Verified C Static Analyzer
Verasco: a Formally Verified C Static Analyzer Jacques-Henri Jourdan Joint work with: Vincent Laporte, Sandrine Blazy, Xavier Leroy, David Pichardie,... June 13, 2017, Montpellier GdR GPL thesis prize
More informationLecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning
Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,
More informationData Types. Every program uses data, either explicitly or implicitly to arrive at a result.
Every program uses data, either explicitly or implicitly to arrive at a result. Data in a program is collected into data structures, and is manipulated by algorithms. Algorithms + Data Structures = Programs
More informationProgram Analysis and Verification
Program Analysis and Verification 0368-4479 Noam Rinetzky Lecture 12: Interprocedural Analysis + Numerical Analysis Slides credit: Roman Manevich, Mooly Sagiv, Eran Yahav 1 Procedural program void main()
More informationStatic Analysis and Verification of Aerospace Software by Abstract Interpretation
Static Analysis and Verification of Aerospace Software by Abstract Interpretation Julien Bertrane École normale supérieure, Paris Patrick Cousot, Courant Institute of Mathematical Sciences, NYU, New York
More informationLecture Notes on Contracts
Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,
More informationScript started on Thu Oct 11 07:52: demo-astree/programs %./README
Script started on Thu Oct 11 07:52:30 2007 demo-astree/programs./readme ****************************************************** ****************************************************** *** *** *** Demonstration
More informationLecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning
Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,
More informationAbstract Interpretation Based Static Analysis Parameterized by Semantics
Abstract Interpretation Based Static Analysis Parameterized by Semantics () Patrick Cousot École normale supérieure, DMI, 45 rue d Ulm, 75230 Paris cedex 05, France cousot@dmi.ens.fr http://www.dmi.ens.fr/
More informationImproving Timing Analysis for Matlab Simulink/Stateflow
Improving Timing Analysis for Matlab Simulink/Stateflow Lili Tan, Björn Wachter, Philipp Lucas, Reinhard Wilhelm Universität des Saarlandes, Saarbrücken, Germany {lili,bwachter,phlucas,wilhelm}@cs.uni-sb.de
More informationImproving the Static Analysis of Loops by Dynamic Partitioning Techniques
Improving the Static Analysis of Loops by Dynamic Partitioning echniques Matthieu Martel CEA - Recherche echnologique LIS-DSI-SLA CEA F91191 Gif-Sur-Yvette Cedex, France Matthieu.Martel@cea.fr Abstract
More informationDuet: Static Analysis for Unbounded Parallelism
Duet: Static Analysis for Unbounded Parallelism Azadeh Farzan and Zachary Kincaid University of Toronto Abstract. Duet is a static analysis tool for concurrent programs in which the number of executing
More informationAutomatically Generating Features for Learning Program Analysis Heuristics for C-Like Languages
Automatically Generating Features for Learning Program Analysis Heuristics for C-Like Languages Kwonsoo Chae Korea University Joint work with Hakjoo Oh (Korea University), Kihong Heo (Seoul National University),
More informationStatic Analysis of Embedded Systems
Static Analysis of Embedded Systems Xavier RIVAL rival@di.ens.fr Outline Case study Certification of embedded softwares Demo Static Analysisof Embedded Systems p.2/12 Ariane 5 Flight 501 Ariane 5: sattelite
More informationInterprocedurally Analysing Linear Inequality Relations
Interprocedurally Analysing Linear Inequality Relations Helmut Seidl, Andrea Flexeder and Michael Petter Technische Universität München, Boltzmannstrasse 3, 85748 Garching, Germany, {seidl, flexeder, petter}@cs.tum.edu,
More informationFast Algorithms for Octagon Abstract Domain
Research Collection Master Thesis Fast Algorithms for Octagon Abstract Domain Author(s): Singh, Gagandeep Publication Date: 2014 Permanent Link: https://doi.org/10.3929/ethz-a-010154448 Rights / License:
More informationInductive Invariant Generation via Abductive Inference
Inductive Invariant Generation via Abductive Inference Isil Dillig Department of Computer Science College of William & Mary idillig@cs.wm.edu Thomas Dillig Department of Computer Science College of William
More informationA New Abstraction Framework for Affine Transformers
A New Abstraction Framework for Affine Transformers Tushar Sharma and Thomas Reps SAS 17 Motivations Prove Program Assertions Function and loop summaries Sound with respect to bitvectors A NEW ABSTRACTION
More informationAn Introduction to Heap Analysis. Pietro Ferrara. Chair of Programming Methodology ETH Zurich, Switzerland
An Introduction to Heap Analysis Pietro Ferrara Chair of Programming Methodology ETH Zurich, Switzerland Analisi e Verifica di Programmi Universita Ca Foscari, Venice, Italy Outline 1. Recall of numerical
More informationUsing widenings to infer loop invariants inside an SMT solver, or: A theorem prover as abstract domain
Using widenings to infer loop invariants inside an SMT solver, or: A theorem prover as abstract domain K. Rustan M. Leino and Francesco Logozzo Microsoft Research, Redmond, WA, USA fleino,logozzog@microsoft.com
More informationAutomatic synthesis of switching controllers for linear hybrid systems: Reachability control
Automatic synthesis of switching controllers for linear hybrid systems: Reachability control Massimo Benerecetti and Marco Faella Università di Napoli Federico II, Italy Abstract. We consider the problem
More informationStatic Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security
Static Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2014 Outline Overview Syntactic Analysis Abstract
More informationScript started on Mon Oct 15 08:21: demo-astree/programs %./README
Script started on Mon Oct 15 08:21:18 2007 demo-astree/programs./readme ****************************************************** ****************************************************** *** *** *** Demonstration
More informationStatic Analysis of the Accuracy in Control Systems : Principles and Experiments
Static Analysis of the Accuracy in Control Systems : Principles and Experiments Eric Goubault 1, Sylvie Putot 1, Philippe Baufreton 2, and Jean Gassino 3 1 CEA/LIST 91191 Gif-sur-Yvette, {eric.goubault,sylvie.putot}@cea.fr
More informationCODE ANALYSES FOR NUMERICAL ACCURACY WITH AFFINE FORMS: FROM DIAGNOSIS TO THE ORIGIN OF THE NUMERICAL ERRORS. Teratec 2017 Forum Védrine Franck
CODE ANALYSES FOR NUMERICAL ACCURACY WITH AFFINE FORMS: FROM DIAGNOSIS TO THE ORIGIN OF THE NUMERICAL ERRORS NUMERICAL CODE ACCURACY WITH FLUCTUAT Compare floating point with ideal computation Use interval
More informationAnalysis of Software Artifacts
Analysis of Software Artifacts Properties with ESC/Java Jonathan Aldrich 1 ESC/Java A checker for Java programs Finds null pointers, array dereferences Checks Hoare logic specifications Expressed in Java
More informationStatic program checking and verification
Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationAbstract debugging of higher-order imperative languages
Abstract debugging of higher-order imperative languages François Bourdoncle DIGITAL Paris Research Laboratory Centre de Mathématiques Appliquées 85, avenue Victor Hugo Ecole des Mines de Paris 92500 Rueil-Malmaison
More informationLearning a Variable-Clustering Strategy for Octagon from Labeled Data Generated by a Static Analysis
Learning a Variable-Clustering Strategy for Octagon from Labeled Data Generated by a Static Analysis Kihong Heo 1, Hakjoo Oh 2, and Hongseok Yang 3 1 Seoul National University 2 Korea University 3 University
More informationStructuring an Abstract Interpreter through Value and State Abstractions: EVA, an Evolved Value Analysis for Frama C
Structuring an Abstract Interpreter through Value and State Abstractions: EVA, an Evolved Value Analysis for Frama C David Bühler CEA LIST, Software Safety Lab Frama-C & SPARK Day 2017 May 30th, 2017 David
More informationLoop Bound Analysis based on a Combination of Program Slicing, Abstract Interpretation, and Invariant Analysis
Loop Bound Analysis based on a Combination of Program Slicing, Abstract Interpretation, and Invariant Analysis Andreas Ermedahl, Christer Sandberg, Jan Gustafsson, Stefan Bygde, and Björn Lisper Department
More informationPrecise Thread-Modular Abstract Interpretation of Concurrent Programs using Relational Interference Abstractions
Precise Thread-Modular Abstract Interpretation of Concurrent Programs using Relational Interference Abstractions Raphaël Monat 1 and Antoine Miné 2 1 École Normale Supérieure de Lyon and École Normale
More informationStatic Analysis. Systems and Internet Infrastructure Security
Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Static Analysis Trent
More informationPredictable paging in real-time systems: an ILP formulation
Predictable paging in real-time systems: an ILP formulation Damien Hardy Isabelle Puaut Université Européenne de Bretagne / IRISA, Rennes, France Abstract Conventionally, the use of virtual memory in real-time
More informationTVLA: A SYSTEM FOR GENERATING ABSTRACT INTERPRETERS*
TVLA: A SYSTEM FOR GENERATING ABSTRACT INTERPRETERS* Tal Lev-Ami, Roman Manevich, and Mooly Sagiv Tel Aviv University {tla@trivnet.com, {rumster,msagiv}@post.tau.ac.il} Abstract TVLA (Three-Valued-Logic
More informationAn Approach to Behavioral Subtyping Based on Static Analysis
TACoS 04 Preliminary Version An Approach to Behavioral Subtyping Based on Static Analysis Francesco Logozzo 1 STIX - École Polytechnique F-91128 Palaiseau, France Abstract In mainstream object oriented
More informationTiming analysis and timing predictability
Timing analysis and timing predictability Architectural Dependences Reinhard Wilhelm Saarland University, Saarbrücken, Germany ArtistDesign Summer School in China 2010 What does the execution time depends
More informationLog System Based on Software Testing System Design And Implementation
4th International Conference on Mechatronics, Materials, Chemistry and Computer Engineering (ICMMCCE 2015) Log System Based on Software Testing System Design And Implementation Yan Liu1, a, Dahai Jin1,
More informationStatic and dynamic analysis: synergy and duality
Static and dynamic analysis: synergy and duality Michael Ernst MIT Computer Science & Artificial Intelligence Lab http://pag.csail.mit.edu/~mernst/ PASTE June 7, 2004 Michael Ernst, page 1 Goals Theme:
More informationLearning Analysis Strategies for Octagon and Context Sensitivity from Labeled Data Generated by Static Analyses
Noname manuscript No. (will be inserted by the editor) Learning Analysis Strategies for Octagon and Context Sensitivity from Labeled Data Generated by Static Analyses Kihong Heo Hakjoo Oh Hongseok Yang
More informationRATCOP: Relational Analysis Tool for Concurrent Programs
RATCOP: Relational Analysis Tool for Concurrent Programs Suvam Mukherjee 1, Oded Padon 2, Sharon Shoham 2, Deepak D Souza 1, and Noam Rinetzky 2 1 Indian Institute of Science, India 2 Tel Aviv University,
More informationScientific Computing. Error Analysis
ECE257 Numerical Methods and Scientific Computing Error Analysis Today s s class: Introduction to error analysis Approximations Round-Off Errors Introduction Error is the difference between the exact solution
More informationOn the Relative Completeness of Bytecode Analysis versus Source Code Analysis
On the Relative Completeness of Bytecode Analysis versus Source Code Analysis Francesco Logozzo & Manuel Fähndrich Microsoft Research {logozzo,maf}@microsoft.com Abstract. We discuss the challenges faced
More informationStackAnalyzer Proving the Absence of Stack Overflows
StackAnalyzer Proving the Absence of Stack Overflows AbsInt GmbH 2012 2 Functional Safety Demonstration of functional correctness Well-defined criteria Automated and/or model-based testing Formal techniques:
More informationInterprocStack analyzer for recursive programs with finite-type and numerical variables
InterprocStack analyzer for recursive programs with finite-type and numerical variables Bertrand Jeannet Contents 1 Invoking InterprocStack 1 2 The Simple language 2 2.1 Syntax and informal semantics.........................
More informationA Note on Karr s Algorithm
A Note on Karr s Algorithm Markus Müller-Olm ½ and Helmut Seidl ¾ ½ FernUniversität Hagen, FB Informatik, LG PI 5, Universitätsstr. 1, 58097 Hagen, Germany mmo@ls5.informatik.uni-dortmund.de ¾ TU München,
More informationControl-Flow Refinment via Partial Evaluation
Control-Flow Refinment via Partial Evaluation Jesús Doménech 1, Samir Genaim 2, and John P. Gallagher 3 1 Universidad Complutense de Madrid, Spain jdomenec@ucm.es 2 Universidad Complutense de Madrid, Spain
More informationThe Apron Library. Antoine Miné. CEA Seminar December the 10th, CNRS, École normale supérieure
Antoine Miné CNRS, École normale supérieure CEA Seminar December the 10th, 2007 CEA December the 10th, 2007 Antoine Miné p. 1 / 64 Outline Introduction Introduction Main goals Theoretical background The
More information4. Number Representations
Educational Objectives You have a good understanding how a computer represents numbers. You can transform integers in binary representation and perform computations. You understand how the value range
More informationApplications of Program analysis in Model-Based Design
Applications of Program analysis in Model-Based Design Prahlad Sampath (Prahlad.Sampath@mathworks.com) 2018 by The MathWorks, Inc., MATLAB, Simulink, Stateflow, are registered trademarks of The MathWorks,
More informationAutomatically Testing Implementations of Numerical Abstract Domains
Automatically Testing Implementations of Numerical Abstract Domains ABSTRACT Alexandra Bugariu Department of Computer Science, ETH Zurich Switzerland alexandra.bugariu@inf.ethz.ch Maria Christakis MPI-SWS
More informationFrama-C Value Analysis
Frama-C Value Analysis Séminaire CAP TRONIC Virgile Prevosto virgile.prevosto@cea.fr June 18 th, 2015 Outline Introduction Abstract domains Arithmetic Memory Methodology Basic commands Parameters Introduction
More informationProgram verification. Generalities about software Verification Model Checking. September 20, 2016
Program verification Generalities about software Verification Model Checking Laure Gonnord David Monniaux September 20, 2016 1 / 43 The teaching staff Laure Gonnord, associate professor, LIP laboratory,
More informationStatic Memory and Timing Analysis of Embedded Systems Code
Static Memory and Timing Analysis of Embedded Systems Code Christian Ferdinand Reinhold Heckmann Bärbel Franzen AbsInt Angewandte Informatik GmbH Science Park 1, D-66123 Saarbrücken, Germany Phone: +49-681-38360-0
More informationarxiv: v1 [cs.pl] 1 Dec 2016
NSAD 2016 arxiv:1612.00277v1 [cs.pl] 1 Dec 2016 Sparsity Preserving Algorithms for Octagons Abstract Jacques-Henri Jourdan MPI-SWS, Inria Paris Known algorithms for manipulating octagons do not preserve
More informationProgram Analysis using Symbolic Ranges
Program Analysis using Symbolic Ranges Sriram Sankaranarayanan, Franjo Ivančić, Aarti Gupta NEC Laboratories America, {srirams,ivancic,agupta}@nec-labs.com Abstract. Interval analysis seeks static lower
More informationDecomposition Instead of Self- Composition for Proving the Absence of Timing Channels
Decomposition Instead of Self- Composition for Proving the Absence of Timing Channels PLDI June 20th, 2017 Timos Antonopoulos, Yale Paul Gazzillo, Yale Michael Hicks, UMD Eric Koskinen, Yale Tachio Terauchi,
More informationUsing Counterexamples for Improving the Precision of Reachability Computation with Polyhedra
Using Counterexamples for Improving the Precision of Reachability Computation with Polyhedra Chao Wang 1, Zijiang Yang 2, Aarti Gupta 1, and Franjo Ivančić 1 1 NEC Laboratories America, Princeton, NJ 08540,
More informationTiming Analysis Enhancement for Synchronous Program
Timing Analysis Enhancement for Synchronous Program Extended Abstract Pascal Raymond, Claire Maiza, Catherine Parent-Vigouroux, Fabienne Carrier, and Mihail Asavoae Grenoble-Alpes University Verimag, Centre
More information